home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 March / EnigmA AMIGA RUN 05 (1996)(G.R. Edizioni)(IT)[!][issue 1996-03][Skylink CD IV].iso / earcd / program / mui32dev.lha / MUI / Developer / Modula / txt / MuiMacros.def < prev    next >
Text File  |  1996-01-23  |  22KB  |  646 lines

  1. DEFINITION MODULE MuiMacros;
  2.  
  3. (*$ DEFINE Locale:= TRUE *)
  4. (*$ DEFINE MUIOBSOLETE := FALSE *)
  5. (*$ DEFINE MUI3        := TRUE  *)
  6.  
  7. (****************************************************************************
  8. **
  9. ** $VER: MuiMacros.def 3.2 (23.1.96)
  10. **
  11. ** The following updates have been done by
  12. **
  13. **   Olaf "Olf" Peters <olf@informatik.uni-bremen.de>
  14. **
  15. ** $HISTORY:
  16. **
  17. **  23.1.96  3.2   : updated for MUI 3.2 release
  18. ** 18.11.95  3.1   : updated for MUI v3.1 release
  19. **  17.9.95  2.3   : updated to MUI v2.3
  20. **
  21. ****************************************************************************)
  22.  
  23. (****************************************************************************
  24. **
  25. **      MUI Macros 2.0
  26. **
  27. **      Converted to Modula by Christian "Kochtopf" Scholz
  28. **
  29. **      refer also to MuiMacros.mod if you want to know, how they are made.
  30. **
  31. **      $Id: MuiMacros.def 1.5 1995/12/15 16:37:53 olf Exp olf $
  32. **
  33. **/// "$Log: MuiMacros.def $
  34. # Revision 1.5  1995/12/15  16:37:53  olf
  35. # - applied changes from Stefan Schulz
  36. # - cleanup of IMPORT section
  37. #"
  38. # Revision 1.4  1995/12/04  17:30:31  olf
  39. # MUI-Interfaces 3.1.1
  40. #
  41. # Revision 1.3  1995/11/18  16:46:18  olf
  42. # MUI Release 3.1
  43. #
  44. # Revision 1.2  1995/10/23  17:06:34  olf
  45. # *** empty log message ***
  46. #
  47. # Revision 1.1  1995/09/25  15:32:52  olf
  48. # Initial revision
  49. #
  50. # Revision 1.8  1994/08/18  18:52:20  Kochtopf
  51. # changed popbutton
  52. #
  53. # Revision 1.7  1994/08/11  16:59:45  Kochtopf
  54. # *** empty log message ***
  55. #
  56. # Revision 1.6  1994/06/27  22:06:41  Kochtopf
  57. # put some Macros in MUIObsolete-Parenthesis, because one should
  58. # now use mMakeObj.
  59. #
  60. # Revision 1.5  1994/02/15  21:14:05  Kochtopf
  61. # neue Macros fuer Pop* und Register definiert,
  62. # HCenter und VCenter neu
  63. # PopUp entfernt und durch PopButton ersetzt.
  64. # neue Label-Macros LLabel eingefuehrt (aus mui.h)
  65. #
  66. # Revision 1.4  1994/02/09  14:50:03  Kochtopf
  67. # Versionsnummer in 2.0 geaendert.
  68. #
  69. **\\\
  70. ****************************************************************************
  71. ** Class Tree
  72. ****************************************************************************
  73. **
  74. ** rootclass                     (BOOPSI's base class)
  75. ** +--Notify                     (implements notification mechanism)
  76. ** !  +--Family                  (handles multiple children)
  77. ** !  !  +--Menustrip            (describes a complete menu strip)
  78. ** !  !  +--Menu                 (describes a single menu)
  79. ** !  !  \--Menuitem             (describes a single menu item)
  80. ** !  +--Application             (main class for all applications)
  81. ** !  +--Window                  (handles intuition window related topics)
  82. ** !  !  \--Aboutmui             (About window of MUI preferences)
  83. ** !  +--Area                    (base class for all GUI elements)
  84. ** !  !  +--Rectangle            (creates (empty) rectangles)
  85. ** !  !  +--Balance              (creates a balancing separator bar)
  86. ** !  !  +--Image                (creates images)
  87. ** !  !  +--Bitmap               (draws bitmaps)
  88. ** !  !  !  \--Bodychunk         (makes bitmap from ILBM body chunk)
  89. ** !  !  +--Text                 (creates some text)
  90. ** !  !  +--Gadget               (base class for intuition gadgets)
  91. ** !  !  !  +--String            (creates a string gadget)
  92. ** !  !  !  +--Boopsi            (interface to BOOPSI gadgets)
  93. ** !  !  !  \--Prop              (creates a proportional gadget)
  94. ** !  !  +--Gauge                (creates a fule gauge)
  95. ** !  !  +--Scale                (creates a percentage scale)
  96. ** !  !  +--Colorfield           (creates a field with changeable color)
  97. ** !  !  +--List                 (creates a line-oriented list)
  98. ** !  !  !  +--Floattext         (special list with floating text)
  99. ** !  !  !  +--Volumelist        (special list with volumes)
  100. ** !  !  !  +--Scrmodelist       (special list with screen modes)
  101. ** !  !  !  \--Dirlist           (special list with files)
  102. ** !  !  +--Numeric              (base class for slider gadgets)
  103. ** !  !  +--Framedisplay         (displays a frame specification)
  104. ** !  !  !  \--Popframe          (popup button to adjust a frame)
  105. ** !  !  +--Imagedisplay         (displays an image specification)
  106. ** !  !  !  \--Popimage          (popup button to adjust an image spec)
  107. ** !  !  +--Pendisplay           (displays a pen specification)
  108. ** !  !  !  +--Poppen            (popup button to adjust a pen spec)
  109. ** !  !  !  +--Knob              (creates knobs)
  110. ** !  !  !  +--Levelmeter        (creates a level display)
  111. ** !  !  !  +--Numericbutton     (creates space saving popup sliders)
  112. ** !  !  !  \--Slider            (creates slider gadgets)
  113. ** !  !  +--Group                (groups other GUI elements)
  114. ** !  !  !  +--Mccprefs          (base class for extern custom class preferences classes)
  115. ** !  !  !  +--Register          (handles page groups with titles)
  116. ** !  !  !  +--Settingsgroup     (Creates GUI elements to adjust MUIs preferences)
  117. ** !  !  !  +--Settings          (Creates prefs)
  118. ** !  !  !  +--Frameadjust       (creates an object to adjust a frame)
  119. ** !  !  !  !  \--Penadjust      (creates a group to adjust a pen)
  120. ** !  !  !  +--Imageadjust       (creates a group to adjust an image)
  121. ** !  !  !  +--Virtgroup         (handles virtual groups)
  122. ** !  !  !  +--Scrollgroup       (handles virtual groups with scrollers)
  123. ** !  !  !  +--Scrollbar         (creates a scrollbar)
  124. ** !  !  !  +--Listview          (creates a listview)
  125. ** !  !  !  +--Radio             (creates radio buttons)
  126. ** !  !  !  +--Cycle             (creates cycle gadgets)
  127. ** !  !  !  +--Coloradjust       (creates some RGB sliders)
  128. ** !  !  !  +--Palette           (creates a complete palette gadget)
  129. ** !  !  !  +--Popstring         (base class for popups)
  130. ** !  !  !  !  +--Popobject      (popup a MUI object in a window)
  131. ** !  !  !  !  !  +--Poplist     (popup a simple listview)
  132. ** !  !  !  !  !  \--Popscreen   (popup a list of public screens)
  133. ** !  !  !  !  \--Popasl         (popup an asl requester)
  134. ** +--Semaphore                  (baseclass for semaphore equipped objects)
  135. **    +--Applist                 (private class)
  136. **    +--Dataspace               (handles general purpose data spaces)
  137. **       \--Configdata           (handles MUI configuration data)
  138. **
  139. ***************************************************************************)
  140.  
  141. FROM    SYSTEM   IMPORT ADDRESS, ADR, TAG;
  142. FROM    MuiD     IMPORT APTR, StrPtr ;
  143.  
  144. IMPORT
  145.   m  : MuiD,
  146.   ml : MuiL,
  147.   ud : UtilityD ;
  148.  
  149. TYPE    ShortString = ARRAY[0..3] OF CHAR;  (* for MakeID *)
  150.  
  151.         (* Here some Types you have to use, IF you want to fill the
  152.            array, the ListDisplayHook gets as parameter and which the hook
  153.            has to fill *)
  154.  
  155.         STRING      = ARRAY[0..128] OF CHAR;
  156.         STRPTR      = POINTER TO STRING;
  157.         STRARR      = ARRAY[0..10] OF STRPTR; (* set 10 to the number of columns you have in your list *)
  158.         STRARRPTR   = POINTER TO STRARR;
  159.  
  160.         (* Use it the following way :
  161.  
  162.         Your Hookfunction :
  163.  
  164.         PROCEDURE dspfunc(hook : HookPtr; array : APTR; entry : APTR) : APTR;
  165.  
  166.             BEGIN
  167.                 CAST(STRARRPTR,array)^[0]:=ADR(first string);
  168.                 CAST(STRARRPTR,array)^[1]:=ADR(second string);
  169.                 ...
  170.                 RETURN 0;
  171.             END dspfunc;
  172.  
  173.         As you see, it is the same as string-arrays in C  *)
  174.  
  175.  
  176.         (* Here your PROCEDURE-Prototype for your hookfunction : *)
  177.  
  178.         HookDef     = PROCEDURE(ud.HookPtr, APTR, APTR):APTR;
  179.  
  180. (*
  181. **  MUI - Object Generation
  182. **
  183. **  These Macros are equal to the C-Macros which can be found in mui.h
  184. **  But notice, that you have a different usage of these :
  185. **
  186. **  Instead of
  187. **
  188. **      app = ApplicationObject,
  189. **
  190. **              ...
  191. **
  192. **            End;
  193. **
  194. **  you now write :
  195. **
  196. **      app := ApplicationObject(TAG(buffer,    (* TAG from SYSTEM *)
  197. **
  198. **              ...
  199. **
  200. **             tagEnd));    (* tagEnd imported from UtilityD *)
  201. **
  202. **  Also you can't use :
  203. **
  204. **      app := ApplicationObject(TAG(buffer,
  205. **
  206. **              ...
  207. **  ====>            window:=WindowObject(TAG(buffer, ... , tagEnd)),
  208. **              ...
  209. **
  210. **             tagEnd));
  211. **
  212. **  instead of this, you have to define your Window-Object before the
  213. **  Application-Object and then use the pointer in the App-Definition :
  214. **
  215. **      window := WindowObject(TAG(buffer, ... , tagEnd)),
  216. **
  217. **      app := ApplicationObject(TAG(buffer,
  218. **
  219. **              ...
  220. **                   window,
  221. **              ...
  222. **
  223. **             tagEnd));
  224. **
  225. **  So you can't define a whole application with one command if you need
  226. **  the pointer of some objects later on (for a Notify, etc.)
  227. **
  228. *)
  229.  
  230. CONST   Child           = m.maGroupChild;
  231.         SubWindow       = m.maApplicationWindow;
  232.         WindowContents  = m.maWindowRootObject;
  233.  
  234. PROCEDURE WindowObject(tags : ud.TagItemPtr) : APTR;
  235. PROCEDURE ImageObject(tags : ud.TagItemPtr) : APTR;
  236. PROCEDURE NotifyObject(tags : ud.TagItemPtr) : APTR;
  237. PROCEDURE ApplicationObject(tags : ud.TagItemPtr) : APTR;
  238. PROCEDURE TextObject(tags : ud.TagItemPtr) : APTR;
  239. PROCEDURE RectangleObject(tags : ud.TagItemPtr) : APTR;
  240. PROCEDURE ListObject(tags : ud.TagItemPtr) : APTR;
  241. PROCEDURE PropObject(tags : ud.TagItemPtr) : APTR;
  242. PROCEDURE StringObject(tags : ud.TagItemPtr) : APTR;
  243. PROCEDURE ScrollbarObject(tags : ud.TagItemPtr) : APTR;
  244. PROCEDURE ListviewObject(tags : ud.TagItemPtr) : APTR;
  245. PROCEDURE RadioObject(tags : ud.TagItemPtr) : APTR;
  246. PROCEDURE VolumelistObject(tags : ud.TagItemPtr) : APTR;
  247. PROCEDURE FloattextObject(tags : ud.TagItemPtr) : APTR;
  248. PROCEDURE DirlistObject(tags : ud.TagItemPtr) : APTR;
  249. PROCEDURE SliderObject(tags : ud.TagItemPtr) : APTR;
  250. PROCEDURE CycleObject(tags : ud.TagItemPtr) : APTR;
  251. PROCEDURE GaugeObject(tags : ud.TagItemPtr) : APTR;
  252. PROCEDURE ScaleObject(tags : ud.TagItemPtr) : APTR;
  253. PROCEDURE BoopsiObject(tags : ud.TagItemPtr) : APTR;
  254. PROCEDURE ColorfieldObject(tags : ud.TagItemPtr) : APTR;
  255. PROCEDURE ColoradjustObject(tags : ud.TagItemPtr) : APTR;
  256. PROCEDURE PaletteObject(tags : ud.TagItemPtr) : APTR;
  257. PROCEDURE GroupObject(tags : ud.TagItemPtr) : APTR;
  258. PROCEDURE VirtgroupObject(tags : ud.TagItemPtr) : APTR;
  259. PROCEDURE ScrollgroupObject(tags : ud.TagItemPtr) : APTR;
  260. PROCEDURE ScrmodelistObject(tags : ud.TagItemPtr) : APTR;
  261. PROCEDURE VGroup(tags : ud.TagItemPtr) : APTR;
  262. PROCEDURE HGroup(tags : ud.TagItemPtr) : APTR;
  263. PROCEDURE ColGroup(cols : LONGCARD; tags : ud.TagItemPtr) : APTR;
  264. PROCEDURE RowGroup(rows : LONGCARD; tags : ud.TagItemPtr) : APTR;
  265. PROCEDURE PageGroup(tags : ud.TagItemPtr) : APTR;
  266. PROCEDURE VGroupV(tags : ud.TagItemPtr) : APTR;
  267. PROCEDURE HGroupV(tags : ud.TagItemPtr) : APTR;
  268. PROCEDURE ColGroupV(cols : LONGCARD; tags : ud.TagItemPtr) : APTR;
  269. PROCEDURE RowGroupV(rows : LONGCARD; tags : ud.TagItemPtr) : APTR;
  270. PROCEDURE PageGroupV(tags : ud.TagItemPtr) : APTR;
  271. PROCEDURE PopString(tags : ud.TagItemPtr) : APTR;
  272. PROCEDURE PopObject(tags : ud.TagItemPtr) : APTR;
  273. PROCEDURE PopAsl(tags : ud.TagItemPtr) : APTR;
  274. (*$ IF MUI3 *)
  275. PROCEDURE PendisplayObject(tags : ud.TagItemPtr) : APTR ;
  276. PROCEDURE PoppenObject(tags : ud.TagItemPtr) : APTR ;
  277. (*$ ENDIF *)
  278. PROCEDURE Register(tags : ud.TagItemPtr) : APTR;
  279. PROCEDURE MenuStripObject(tags : ud.TagItemPtr) : APTR;
  280. PROCEDURE MenuObject(tags : ud.TagItemPtr) : APTR;
  281. (*$ IF Locale *)
  282. PROCEDURE MenuObjectT(name : StrPtr; tags : ud.TagItemPtr) : APTR;
  283. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  284. PROCEDURE MenuObjectT(name : ARRAY OF CHAR; tags : ud.TagItemPtr) : APTR;
  285. (*$ ENDIF *)
  286. PROCEDURE MenuItemObject(tags : ud.TagItemPtr) : APTR;
  287.  
  288. (*$ IF MUI3 *)
  289. PROCEDURE AboutmuiObject(tags : ud.TagItemPtr) : APTR;
  290. PROCEDURE BalanceObject(tags : ud.TagItemPtr) : APTR ;
  291. PROCEDURE KnobObject(tags : ud.TagItemPtr) : APTR ;
  292. PROCEDURE LevelmeterObject(tags : ud.TagItemPtr) : APTR ;
  293. PROCEDURE NumericbuttonObject(tags : ud.TagItemPtr) : APTR ;
  294. PROCEDURE NumericObject(tags : ud.TagItemPtr) : APTR ;
  295. PROCEDURE PenadjustObject(tags : ud.TagItemPtr) : APTR ;
  296. (*$ ENDIF *)
  297.  
  298. (*
  299. **  MakeID
  300. **  Generate an ID out of a 4-char-string.
  301. **  Use it the as WindowID ! (look in MuiTest for an example!)
  302. *)
  303.  
  304. PROCEDURE MakeID (name : ShortString): LONGINT;
  305.  
  306. (*
  307. **
  308. **  Hook Macros
  309. **
  310. **  Use it the following way :
  311. **      1. Write your Hook-Function :
  312. **          PROCEDURE hookfunc(hook:HookPtr; obj : APTR; args : APTR) : APTR
  313. **              BEGIN
  314. **              ...
  315. **              END hookfunc;
  316. **          Note, that your function needs not to specify registers, but
  317. **          your PROCEDURE must be looking like name(HookPtr, APTR, APTR)!!
  318. **
  319. **      2. Define in your VAR-section a pointer to a Hookrecord :
  320. **          VAR hook    : UtilitiesD.HookPtr;
  321. **
  322. **      3. fill it with MakeHook :
  323. **          MakeHook(hookfunc,hook);
  324. **
  325. **      4. Use it with MUI, as you like, e.g. :
  326. **          DoMethod(button,TAG(buffer,m.mmCallHook,hook,arg1,arg2));
  327. **
  328. *)
  329.  
  330. PROCEDURE MakeHook(entry:HookDef; VAR hook : ud.HookPtr);
  331.  
  332. (*
  333. **
  334. **  Spacing Macros
  335. **
  336. **  (not all from mui.h)
  337. **
  338. *)
  339.  
  340. PROCEDURE HVSpace() : APTR;
  341. PROCEDURE HSpace(x : LONGCARD) : APTR;
  342. PROCEDURE VSpace(x : LONGCARD) : APTR;
  343. PROCEDURE HCenter(obj : APTR) : APTR;
  344. PROCEDURE VCenter(obj : APTR) : APTR;
  345.  
  346. (*
  347. **
  348. **  Popup-Object
  349. **
  350. **
  351. *)
  352.  
  353. PROCEDURE PopButton(img : APTR) : APTR;
  354.  
  355.  
  356.  
  357. (*$ IF MUIObsolete *)
  358.  
  359. (*
  360. **
  361. ** String-Object
  362. **
  363. ** Creates a simple String-Gadget
  364. **
  365. *)
  366.  
  367. (*$ IF Locale *)
  368. PROCEDURE String(contents : StrPtr; maxlen : LONGINT) : APTR;
  369. PROCEDURE KeyString(contents : StrPtr; maxlen : LONGINT; key : CHAR) : APTR;
  370. (*$ ELSE *)
  371. PROCEDURE String(contents : ARRAY OF CHAR; maxlen : LONGINT) : APTR;
  372. PROCEDURE KeyString(contents : ARRAY OF CHAR; maxlen : LONGINT; key : CHAR) : APTR;
  373. (*$ ENDIF *)
  374.  
  375. (*
  376. **
  377. ** Checkmark
  378. **
  379. ** creates a Checkmark Gadget
  380. **
  381. *)
  382.  
  383. PROCEDURE Checkmark(selected : BOOLEAN) : APTR;
  384. PROCEDURE KeyCheckmark(selected : BOOLEAN; key : CHAR) : APTR;
  385.  
  386. (*
  387. **
  388. ** Buttons
  389. **
  390. ** Here the same note : Use small letters for Keybuttons!
  391. **
  392. *)
  393.  
  394. (*$ IF Locale *)
  395. PROCEDURE Simplebutton(name : StrPtr) : APTR;
  396. PROCEDURE Keybutton(name : StrPtr; key : CHAR) : APTR;
  397. (*$ ELSE *)
  398. PROCEDURE Simplebutton(name : ARRAY OF CHAR) : APTR;
  399. PROCEDURE Keybutton(name : ARRAY OF CHAR; key : CHAR) : APTR;
  400. (*$ ENDIF *)
  401.  
  402. (*$ ELSE *) (* if not obsolete *)
  403.  
  404. (*$ IF Locale *)
  405. PROCEDURE Simplebutton(name : StrPtr) : APTR;
  406. (*$ ELSE *)
  407. PROCEDURE Simplebutton(name : ARRAY OF CHAR) : APTR;
  408. (*$ ENDIF *)
  409.  
  410. (*$ ENDIF *) (* MUIObsolete *)
  411.  
  412. (*$ IF MUIObsolete *)
  413.  
  414. (*
  415. **
  416. **  Radio Object
  417. **
  418. *)
  419.  
  420. (*$ IF Locale *)
  421. PROCEDURE Radio(name : StrPtr; array : APTR) : APTR;
  422. (*$ ELSE *)
  423. PROCEDURE Radio(name : ARRAY OF CHAR; array : APTR) : APTR;
  424. (*$ ENDIF *)
  425.  
  426. (*$ IF Locale *)
  427. PROCEDURE KeyRadio(name : StrPtr; array : APTR; key : CHAR) : APTR;
  428. (*$ ELSE *)
  429. PROCEDURE KeyRadio(name : ARRAY OF CHAR; array : APTR; key : CHAR) : APTR;
  430. (*$ ENDIF *)
  431.  
  432.  
  433. (*
  434. **
  435. **  Cycle-Objects
  436. **
  437. *)
  438.  
  439. PROCEDURE Cycle(array : APTR) : APTR;
  440. PROCEDURE KeyCycle(array : APTR; key : CHAR) : APTR;
  441.  
  442. (*
  443. **
  444. **  Slider-Objects
  445. **
  446. *)
  447.  
  448. PROCEDURE Slider(min, max, level : LONGINT; horiz : BOOLEAN) : APTR;
  449. PROCEDURE KeySlider(min, max, level : LONGINT; horiz : BOOLEAN; key : CHAR) : APTR;
  450.  
  451. (*$ ENDIF *) (* MUIObsolete *)
  452.  
  453.  
  454.  
  455. (*
  456. **
  457. ** Label Objects
  458. **
  459. ** The same as in mui.h
  460. **
  461. ** Label()  : create a Label for Objects without a frame
  462. ** Label1() : create a label for Objects with a standard frame (Checkmarks...)
  463. ** Label2() : create a label for Objects with double high frame (String Gadgets...)
  464. **
  465. *)
  466.  
  467. (*$ IF Locale *)
  468. PROCEDURE Label  (label : StrPtr) : APTR;
  469. PROCEDURE Label1 (label : StrPtr) : APTR;
  470. PROCEDURE Label2 (label : StrPtr) : APTR;
  471. PROCEDURE LLabel (label : StrPtr) : APTR;
  472. PROCEDURE LLabel1(label : StrPtr) : APTR;
  473. PROCEDURE LLabel2(label : StrPtr) : APTR;
  474.  
  475. (*$ IF MUI3 *)
  476. PROCEDURE CLabel (label : StrPtr) : APTR ;
  477. PROCEDURE CLabel1(label : StrPtr) : APTR ;
  478. PROCEDURE CLabel2(label : StrPtr) : APTR ;
  479.  
  480. PROCEDURE FreeLabel  (label : StrPtr) : APTR;
  481. PROCEDURE FreeLabel1 (label : StrPtr) : APTR;
  482. PROCEDURE FreeLabel2 (label : StrPtr) : APTR;
  483. PROCEDURE FreeLLabel (label : StrPtr) : APTR;
  484. PROCEDURE FreeLLabel1(label : StrPtr) : APTR;
  485. PROCEDURE FreeLLabel2(label : StrPtr) : APTR;
  486. PROCEDURE FreeCLabel (label : StrPtr) : APTR;
  487. PROCEDURE FreeCLabel1(label : StrPtr) : APTR;
  488. PROCEDURE FreeCLabel2(label : StrPtr) : APTR;
  489. (*$ ENDIF *)
  490.  
  491. PROCEDURE KeyLabel  (label : StrPtr; HiChar : CHAR) : APTR;
  492. PROCEDURE KeyLabel1 (label : StrPtr; HiChar : CHAR) : APTR;
  493. PROCEDURE KeyLabel2 (label : StrPtr; HiChar : CHAR) : APTR;
  494. PROCEDURE KeyLLabel (label : StrPtr; HiChar : CHAR) : APTR;
  495. PROCEDURE KeyLLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  496. PROCEDURE KeyLLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  497.  
  498. (*$ IF MUI3 *)
  499. PROCEDURE FreeKeyLabel  (label : StrPtr; HiChar : CHAR) : APTR;
  500. PROCEDURE FreeKeyLabel1 (label : StrPtr; HiChar : CHAR) : APTR;
  501. PROCEDURE FreeKeyLabel2 (label : StrPtr; HiChar : CHAR) : APTR;
  502. PROCEDURE FreeKeyLLabel (label : StrPtr; HiChar : CHAR) : APTR;
  503. PROCEDURE FreeKeyLLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  504. PROCEDURE FreeKeyLLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  505. PROCEDURE FreeKeyCLabel (label : StrPtr; HiChar : CHAR) : APTR;
  506. PROCEDURE FreeKeyCLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  507. PROCEDURE FreeKeyCLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  508. (*$ ENDIF *)
  509.  
  510. (*$ ELSE *)
  511.  
  512. PROCEDURE Label  (label : ARRAY OF CHAR) : APTR;
  513. PROCEDURE Label1 (label : ARRAY OF CHAR) : APTR;
  514. PROCEDURE Label2 (label : ARRAY OF CHAR) : APTR;
  515. PROCEDURE LLabel (label : ARRAY OF CHAR) : APTR;
  516. PROCEDURE LLabel1(label : ARRAY OF CHAR) : APTR;
  517. PROCEDURE LLabel2(label : ARRAY OF CHAR) : APTR;
  518.  
  519. (*$ IF MUI3 *)
  520. PROCEDURE CLabel (label : ARRAY OF CHAR) : APTR ;
  521. PROCEDURE CLabel1(label : ARRAY OF CHAR) : APTR ;
  522. PROCEDURE CLabel2(label : ARRAY OF CHAR) : APTR ;
  523.  
  524. PROCEDURE FreeLabel  (label : ARRAY OF CHAR) : APTR;
  525. PROCEDURE FreeLabel1 (label : ARRAY OF CHAR) : APTR;
  526. PROCEDURE FreeLabel2 (label : ARRAY OF CHAR) : APTR;
  527. PROCEDURE FreeLLabel (label : ARRAY OF CHAR) : APTR;
  528. PROCEDURE FreeLLabel1(label : ARRAY OF CHAR) : APTR;
  529. PROCEDURE FreeLLabel2(label : ARRAY OF CHAR) : APTR;
  530. PROCEDURE FreeCLabel (label : ARRAY OF CHAR) : APTR;
  531. PROCEDURE FreeCLabel1(label : ARRAY OF CHAR) : APTR;
  532. PROCEDURE FreeCLabel2(label : ARRAY OF CHAR) : APTR;
  533. (*$ ENDIF *)
  534.  
  535. PROCEDURE KeyLabel  (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  536. PROCEDURE KeyLabel1 (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  537. PROCEDURE KeyLabel2 (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  538. PROCEDURE KeyLLabel (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  539. PROCEDURE KeyLLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  540. PROCEDURE KeyLLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  541.  
  542. (*$ IF MUI3 *)
  543. PROCEDURE FreeKeyLabel  (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  544. PROCEDURE FreeKeyLabel1 (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  545. PROCEDURE FreeKeyLabel2 (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  546. PROCEDURE FreeKeyLLabel (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  547. PROCEDURE FreeKeyLLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  548. PROCEDURE FreeKeyLLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  549. PROCEDURE FreeKeyCLabel (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  550. PROCEDURE FreeKeyCLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  551. PROCEDURE FreeKeyCLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  552. (*$ ENDIF *)
  553.  
  554. (*$ ENDIF *)
  555.  
  556. (*
  557. **
  558. ** Controlling Objects
  559. **
  560. ** Again the same as in mui.h :
  561. **
  562. ** set : set an attribute of an object
  563. ** get : get an attribute of an object
  564. **       didn't work in previous releases :-( (but now!! :-)
  565. **
  566. *)
  567.  
  568. PROCEDURE get(obj : APTR; attr : LONGCARD; store : ADDRESS);
  569. PROCEDURE set(obj : APTR; attr : LONGCARD; value : LONGINT);
  570. PROCEDURE setmutex(obj : APTR; n : LONGINT);
  571. PROCEDURE setcycle(obj : APTR; n : LONGINT);
  572. (*$ IF Locale *)
  573. PROCEDURE setstring(obj : APTR; s : StrPtr);
  574. (*$ ELSE *)
  575. PROCEDURE setstring(obj : APTR; s : ARRAY OF CHAR);
  576. (*$ ENDIF *)
  577. PROCEDURE setcheckmark(obj : APTR; b : BOOLEAN);
  578. PROCEDURE setslider(obj : APTR; l : LONGINT);
  579.  
  580. (*
  581. ** Now some macros which are not part of mui.h (in other words : my own ;-)
  582. **
  583. ** First : NoteClose (app,obj,ID)
  584. **         ----------------------
  585. **         This macro sets up a notification on the close-gadget of a window.
  586. **         if it gets pressed, the app-obj gets back an ID
  587. **         app : the application-object, which will receive the ID
  588. **         obj : the window-object
  589. **         ID  : the ID, which will be send to the app-obj, when the user
  590. **               presses the close-gadget of the window-object specified in
  591. **               obj.
  592. *)
  593.  
  594. PROCEDURE NoteClose(app : APTR;
  595.                     obj : APTR;
  596.                     ID  : LONGINT);
  597.  
  598. (*
  599. **  Notebutton (app,obj,ID)
  600. **  -----------------------
  601. **  Sets up a notification on a button. If it gets pressed, the app-obj
  602. **  receives an ID.
  603. **  app : the app-obj, which will receive the ID.
  604. **  obj : the pointer to the Button-Object (created by Keybutton, etc.)
  605. **  ID  : The ID, which will be send to the app-obj.
  606. **
  607. *)
  608.  
  609. PROCEDURE NoteButton(app : APTR;
  610.                      obj : APTR;
  611.                      ID  : LONGINT);
  612.  
  613. (*
  614. ** RemMember (obj,member)
  615. ** ----------------------
  616. ** The following macro deletes a member from an object
  617. **
  618. ** obj      : The object which holds the child to remove
  619. ** member   : The child which shall be removed
  620. ** ATTENTION: You have to dispose the removed child-objects yourself!
  621. **
  622. *)
  623.  
  624. PROCEDURE RemMember(obj : APTR; member : APTR);
  625.  
  626. (*
  627. ** AddMember (obj,member)
  628. ** ----------------------
  629. ** This macro will add a new child to an group-  or application-object
  630. **
  631. ** obj      : The group or application to which the new object will be added
  632. ** member   : The new child-object which shall be added to obj.
  633. **
  634. *)
  635.  
  636. PROCEDURE AddMember(obj : APTR; member : APTR);
  637.  
  638. END MuiMacros.
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.